package com.czk.ssacharmemory.tools;

import lombok.Data;
import org.springframework.ai.tool.annotation.ToolParam;

import java.util.List;

/**
 * @Author: chenzhangkun
 * @CreateTime: 2025-05-13
 * @Description: 课程查询
 * 这里的`@ToolParam`注解是SpringAI提供的用来解释`Function`参数的注解。其中的信息都会通过提示词的方式发送给AI模型。
 * 同样的道理，大家也可以给`Function`定义专门的VO，作为返回值给到大模型。这里我们就省略了
 * @Version: 1.0
 */
@Data
public class CourseQuery {
    @ToolParam(required = false, description = "课程类型：编程、设计、自媒体、其它")
    private String type;
    @ToolParam(required = false, description = "学历要求：0-无、1-初中、2-高中、3-大专、4-本科及本科以上")
    private Integer edu;
    @ToolParam(required = false, description = "排序方式")
    private List<Sort> sorts;

    /**
     * 排序字段
     */
    @Data
    public static class Sort {
        @ToolParam(required = false, description = "排序字段: price或duration")
        private String field;
        @ToolParam(required = false, description = "是否是升序: true/false")
        private Boolean asc;
    }
}
